// /* eslint-disable no-undef */
// import Stomp from "stompjs";
// let rabbitmqUrl = "ws://7.19.5.8:15674/ws";
// class StompClient {
//   clientInfo = {};
//   subInfoMap = {};
//   subObj = {};
//   client = null;

//   constructor(clientInfo, cb) {
//     this.connect(clientInfo, cb);
//   }
//   connect(clientInfo, cb) {
//     this.clientInfo = clientInfo;
//     //连接rabbitmq
//     let that = this;
//     this.client = new Promise((resolve, reject) => {
//       let url = rabbitmqUrl;
//       let ws = new WebSocket(url); //建立websocket连接
//       let mqClient = Stomp.over(ws); //建立与rabbit的长链接
//       mqClient.connect(
//         clientInfo.userName,
//         clientInfo.passWord,
//         () => {
//           resolve(mqClicent);
//         },
//         (err) => {
//           console.log(err, "connect error");
//           cb && cb();
//           setTimeout(() => {
//             that.reconnect(mqClient, cb);
//           }, 5000);
//           reject(err);
//         },
//         "/"
//       );
//       mqClient.debug = null;
//       // eslint-disable-next-line no-unused-vars
//       ws.onclose = function (err) {
//         //ws关闭后重新连接
//         mqClient.connected = false;
//         mqClient.ws.close();
//         setTimeout(() => {
//           that.reconnect(mqClient, cb);
//         }, 5000);
//         cb && cb();
//         reject("ws 关闭");
//       };
//       ws.onerror = function (err) {
//         reject(err);
//       };
//     });
//   }
//   reconnect(client, cb) {
//     console.log("-----------------reconnect");
//     let subscriptions = client.subscriptions;
//     this.connect(this.clientInfo, cb);
//     for (let id in subscriptions) {
//       for (let ex in this.subInfoMap) {
//         if (this.subInfoMap[ex][0] == id) {
//           this.subscribe(ex, subscriptions[id], this.subInfoMap[ex][1]);
//         }
//       }
//     }
//   }
//   subscribe(ex, callback, subObj = "", opt = {}) {
//     if (this.subObj[subObj]) {
//       this.subObj[subObj].unsubscribe();
//       this.subObj[subObj] = null;
//     }
//     this.client.then((client) => {
//       //{"weixing":{id:"0x.."}}
//       this.subObj[subObj] = client.subscribe(ex, callback, opt);
//       this.subInfoMap[ex] = [this.subObj[subObj].id, opt];
//     });
//   }
//   send(ex, sendData) {
//     this.client.then((client) => {
//       client.send(ex, {}, JSON.stringify(sendData));
//     });
//   }
// }

// let clientInfo = {
//   userName: "admin",
//   passWord: "admin",
// };
// export default (cb) => {
//   return new StompClient(clientInfo, cb);
// };

// //import stomp from ... stomp(cb) cb=function(){}
